package lagou.homework.lagouhomework.Unit4.code.q2;

import java.io.File;

public class Folders {

    public static void createFolders(String path) {
        File f1 = new File(path);
        if (!f1.exists()) {
            System.out.println(f1.mkdirs() ? "目录创建成功" : "目录创建失败");   // 创建多层目录
        }
    }
    public static void deleteFolders(String path) {
        File f2 = new File(path);
        if (f2.exists()) {
            System.out.println("目录名称是：" + f2.getName());
            System.out.println(f2.delete() ? "目录删除成功" : "目录删除失败");
        }
    }


    public static void show(File file) {
        // 获取目录f3下的所有内容并记录到一维数组中
        File[] filesArray = file.listFiles();
        // 遍历数组
        for (File tf: filesArray) {
            String name = tf.getName();
            // 判断是否为文件，若是则直接打印文件名称
            if (tf.isFile()) {
                System.out.println(name);
            }
            // 若是目录，则使用[]将目录名称括起来
            if (tf.isDirectory()) {
                System.out.println("[" + name + "]");
                show(tf);
            }
        }
    }


    public static void deleteFolderFiles(String path) {
        // 获取目录f3下的所有内容并记录到一维数组中
        File f4 = new File(path);
        File[] filesArray = f4.listFiles();
        //System.out.println(filesArray.length);
        // 如果目录中无子目录，则可以删除该目录
        if (filesArray.length==0) {
            Folders.deleteFolders(path);
            return;
        }
        for(int i=0;i<filesArray.length;i++){
            //System.out.println(filesArray[i]);
            if (filesArray[i].isFile()) {
                // 如果是文件 则删除
                // System.out.println(filesArray[i].getAbsolutePath());
                Files.deleteFiles(filesArray[i].getAbsolutePath());
            }

            if (filesArray[i].isDirectory()) {
                // 如果是目录，则递归
                deleteFolderFiles(filesArray[i].getAbsolutePath());
                // Folders.deleteFolders(filesArray[i].getAbsolutePath());
            }

        }

        // 删除自身目录
        Folders.deleteFolders(path);






    }



}
